home *** CD-ROM | disk | FTP | other *** search
/ Precision Software Appli…tions Silver Collection 1 / Precision Software Applications Silver Collection Volume One (PSM) (1993).iso / windows / games / wincapt.arj / README.TXT < prev    next >
Text File  |  1992-07-15  |  8KB  |  169 lines

  1. WINCAP Windows Screen Capture Sample Application
  2. ------------------------------------------------
  3.  
  4. Wincap Version 3.10 (second version) requires Windows 3.1 to run and the
  5. Windows 3.1 SDK to compile and build.
  6.  
  7. DESCRIPTION:
  8. ------------
  9.  
  10. WINCAP demonstrates how to capture portions of the screen, specific windows,
  11. or the entire screen and save it to a file or print it. This sample also
  12. defines routines that accomplish common DIB functions, and are referred to as
  13. the DIB API. Wincap uses the DIB API functions to do most of the
  14. capture/printing/saving work. See the file DIBAPI.TXT for a description of the
  15. DIB api functions.
  16.  
  17. This is the second version, which adds the following:
  18.  
  19.     - New API for displaying DIBs and Bitmaps
  20.   - Bug Fixes:
  21.         - Fixed calculation of bits for 15-bit display drivers
  22.         - Fixed size of output file problem (too many bytes written out)
  23.     - Checks for capabilities of display driver
  24.     - Can now capture windows with menus pulled-down
  25.     - Easier to use interface
  26.   - Uses Windows 3.1 Common Dialogs
  27.  
  28. 3.1 specific features: uses new 3.1 keyboard hook functions
  29.  
  30. OVERVIEW OF TECHNIQUE
  31. ---------------------
  32.  
  33. The preferred way to capture a screen under Windows is to copy the screen
  34. pixels into a device-independent bitmap (DIB), and then to use this DIB in
  35. subsequent operations (for example, to save the bitmap to a file or print the
  36. bitmap).
  37.  
  38. If a DIB is not used in the intermediate step, the results of the screen print
  39. may be less than desirable.
  40.  
  41. By using a DIB to hold the screen image, device-dependent information is
  42. removed from the bitmap. This simplifies the process of displaying the image
  43. on devices with different display capabilities. For instance, capturing a
  44. screen from a 24-bit display adapter and printing it on a 1-bit (monochrome)
  45. printer can be done with exceptional results if DIBs are used. Additionally,
  46. many printer drivers implement gray scale dithering; the output on these
  47. printers is also exceptional when DIBs are used.
  48.  
  49.     [Side Note: The BitBlt function should be avoided when printing bitmaps
  50.     due to the device-dependency of bitmaps. The type of bitmaps that the
  51.     BitBlt function requires are normally in the format of the display driver
  52.     rather than the printer driver. Depending on the drivers involved, the
  53.     results of using BitBlt to print a bitmap can vary from extrememly poor
  54.     output quality to no output at all.
  55.  
  56.     Although all printer drivers are able to BitBlt a monochrome bitmap to
  57.     the printer, this technique normally produces poor results because the
  58.     printer cannot apply grayscaling to the image.]
  59.  
  60. This technique of using a DIB to convert a bitmap between display devices with
  61. different capabilities can also be used to convert bitmaps while preserving
  62. the original color information (for example, loading a 256-color bitmap from a
  63. .BMP file and printing it to a 3-color printer or displaying it on a 24-bit
  64. display).
  65.  
  66. SPECIFICS FOR THIS SAMPLE
  67. -------------------------
  68.  
  69. This sample is an illustration of the following Windows techniques:
  70.  
  71.     - Capturing the screen (or a specific window) into a DIB
  72.     - Capturing the screen to a Bitmap (device-dependent bitmap)
  73.     - Printing a DIB using banding
  74.     - Loading and Saving a DIB to a disk file (.BMP file)
  75.     - Converting between DIBs and DDBs
  76.     - Displaying the captured screen DDB
  77.  
  78. All of these are accomplished with calls to a simple-to-use DIB API. The DIB
  79. API provides the following functions:
  80.  
  81. BitmapToDIB()        - Creates a DIB from a bitmap
  82. ChangeBitmapFormat() - Changes a bitmap to a specified DIB format
  83. ChangeDIBFormat()    - Changes a DIB's BPP and/or compression format
  84. CopyScreenToBitmap() - Copies entire screen to a standard Bitmap
  85. CopyScreenToDIB()    - Copies entire screen to a DIB
  86. CopyWindowToBitmap() - Copies a window to a standard Bitmap
  87. CopyWindowToDIB()    - Copies a window to a DIB
  88. CreateDIBPalette()   - Creates a palette from a DIB
  89. CreateDIB()          - Creates a new DIB
  90. DestroyDIB()         - Deletes DIB when finished using it
  91. DIBError()           - Displays message box with error message
  92. DIBHeight()          - Gets the DIB height
  93. DIBNumColors()       - Calculates number of colors in the DIB's color table
  94. DIBToBitmap()        - Creates a bitmap from a DIB
  95. DIBWidth()           - Gets the DIB width
  96. FindDIBBits()        - Sets pointer to the DIB bits
  97. GetSystemPalette()   - Gets the current palette
  98. LoadDIB()            - Loads a DIB from a file
  99. PaintBitmap()        - Displays standard bitmap in the specified DC
  100. PaintDIB()           - Displays DIB in the specified DC
  101. PalEntriesOnDevice() - Gets the number of palette entries
  102. PaletteSize()        - Calculates the buffer size required by a palette
  103. PrintDIB()           - Prints the specified DIB
  104. PrintScreen()        - Prints the entire screen
  105. PrintWindow()        - Prints all or part of a window
  106. SaveDIB()            - Saves the specified dib in a file
  107.  
  108. The source code to these functions are included in this sample.  You can 
  109. easily call these functions from a different application by simply compiling 
  110. the enclosed DIBAPI.DLL, and linking with the DIBAPI.LIB import library.  
  111. The file DIBAPI.TXT contains more information on the parameters/usage of 
  112. these functions. A Windows Help file for the DIB APIs is also included.
  113.  
  114. NOTE: The above DIB API were not written to support OS/2-style DIBs, although
  115. some of the utility functions (see DIBUTIL.C) will work with either Windows or
  116. OS/2 DIBs.
  117.  
  118. SOURCE FILE LISTING
  119. -------------------
  120.  
  121. The following files are a part of the DIB API DLL:
  122.  
  123.     copy.c      - CopyWindowToDIB, CopyScreenToDIB, CopyWindowToBitmap,
  124.                   CopyScreenToBitmap, PaintDIB, PaintBitmap plus
  125.                   misc utility functions
  126.     dibapi.def  - DEF file for DIB API DLL
  127.     dibapi.h    - Header containing constants for DIB errors and
  128.                   prototypes for the DIB API functions
  129.     dibapi.hlp  - Windows help file containing full DIB API reference
  130.     dibapi.mak  - NMAKE Makefile for DIBAPI.DLL
  131.     dibapi.rc   - Resource file for DIB API DLL
  132.     dibapi.txt  - Documentation for DIB API functions
  133.     dibdll.h    - Constants for DLL printing dialog
  134.     dibutil.c   - More DIB utility functions
  135.     dibutil.h   - DIB utility constants and macros
  136.     dllinit.c   - Contains LibMain for DIB API DLL
  137.     errors.c    - Defines all errors which can be returned from DIB
  138.                   API functions
  139.     file.c      - SaveDIB, LoadDIB, and DestroyDIB
  140.     print.c     - PrintDIB, PrintWindow, and PrintScreen
  141.     wepcode.c   - Contains WEP for DIB API DLL
  142.                 
  143. The following files are for the WINCAP sample, which uses the DIB API DLL.
  144.                 
  145.     dialogs.c   - Contains dialog routines for dialog boxes in WINCAP
  146.     dialogs.dlg - Dialog templates for WINCAP
  147.     dialogs.h   - Dialog constants for WINCAP
  148.     dlgopen.c   - Contains code for "File/Save" dialog box
  149.     hook.c      - Contains code for keyboard hook
  150.     makefile    - NMAKE Makefile for WINCAP
  151.     wincap.c    - Contains WinMain - this is the main program file for
  152.                   the WINCAP sample
  153.     wincap.def  - DEF file for WINCAP
  154.     wincap.h    - Contains WINCAP constants
  155.     wincap.rc   - Resource file for WINCAP
  156.  
  157. CREDITS:
  158. --------
  159.  
  160. Development Team: Mark Bader       
  161.                   Patrick Schreiber
  162.                   Garrett McAuliffe  
  163.                   Eric Flo
  164.                   Tony Claflin
  165.                   Dan Ruder
  166.  
  167. Written by Microsoft Product Support Services, Developer Support.
  168. Copyright (c) 1991 Microsoft Corporation. All rights reserved.
  169.